package com.yonyou.wdt.utils;

import java.util.concurrent.ConcurrentHashMap;

public class TenantRateLimiter {
    // 存储每个租户和接口的限流器
    private final ConcurrentHashMap<String, RateLimiter> rateLimiterMap = new ConcurrentHashMap<>();

    // 获取限流器的键（租户ID + 接口ID）
    private String getKey(String tenantId, String apiId) {
        return tenantId + "_" + apiId;
    }

    // 获取限流器，同时传入动态的限流频率
    public RateLimiter getRateLimiter(String tenantId, String apiId, int maxCallsPerMinute) {
        String key = getKey(tenantId, apiId);
        // 如果限流器不存在，创建新的限流器，并传入限流频率
        return rateLimiterMap.computeIfAbsent(key, k -> new RateLimiter(maxCallsPerMinute));
    }

}
